Python创建单链表

您所在的位置:网站首页 单链表 python Python创建单链表

Python创建单链表

2024-07-03 21:31| 来源: 网络整理| 查看: 265

python中创建变量

例如:

a = 10 b = 20

如果交换这两个数的值,在python中直接可以这样做,在别的语言中不可以。

a,b = b,a

这是因为在python中,在定义a=10时,除了开辟一块内存给10这个值**,还需要开辟一块内存用于存储10的地址**,这块称之为a。类似的,b也是如此。

所以说,在python中交换两个数的值,其实是地址的指向发生转换,类似于C语言中的指针。

在a,b = b,a 中。我们先看右边,取出b,a的值20,10。即得到a,b =20 ,10。 然后a再存储20的地址,b再存储10的地址。这样达到交换的效果。 在这里插入图片描述 因此,python中的变量名,保存的不是值,而是地址。同时,由于在python中变量是隐式说明,所以python中a可以指向任何东西,a可以直接将函数赋值给它。这样符合python中一切皆对象的思想。

Python创建单链表

有了上面的知识,就可以进入正题了,那么如何用python创建单链表?

首先需要定义一个结点类Node,其中self.elem用于存储数据,self.next用于存储下一个地址。然后定义一个单链表类SingleLinkList,其中__init_用于初始化头结点。下面都是一些单链表的常用对象方法,包括:判断链表是否为空、返回链表长度、遍历整个链表、在头部添加元素(头插法)、在链表尾部添加元素(尾插法)、指定位置添加元素、删除节点( 删除链表中第一个出现的item值的结点)、查找节点是否存在。 class Node(): def __init__(self, elem): self.elem = elem self.next = None # 这里的next可以随便叫 class SingleLinkList(): def __init__(self, node=None ): self.__head = node # __表示私有属性,不对外开放 # 对象方法 # 判断链表是否为空 def is_empty(self): return self.__head == None # 返回链表长度 def length(self): # cur游标,用来移动遍历节点 cur = self.__head # count记录数量 count = 0 while cur != None: count += 1 cur = cur.next return count # 遍历整个链表 def travel(self): cur = self.__head while cur != None: print(cur.elem, end=' ') cur = cur.next print() # 在头部添加元素(头插法) def add(self, item): node = Node(item) node.next = self.__head self.__head = node # 在链表尾部添加元素(尾插法) def append(self, item): # 这里的item是一个数据,不是节点 node = Node(item) if self.is_empty(): self.__head = node else: cur = self.__head while cur.next != None: cur = cur.next cur.next = node # 指定位置添加元素 def insert(self, pos, item): # pos从0开始索引 if pos self.length()-1: self.append(item) else: node = Node(item) count = 0 pre = self.__head while count


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3